package xx.pro.producer.config;

import org.springframework.amqp.core.Binding;
import org.springframework.amqp.core.BindingBuilder;
import org.springframework.amqp.core.FanoutExchange;
import org.springframework.amqp.core.Queue;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import static xx.pro.common.constans.Constants.*;

/**
 * 扇形交换机
 *  将三个队列都绑定在交换机 fanoutExchange 上
 *  因为是扇型交换机, 路由键无需配置,配置也不起作用
 */
@Configuration
public class FaoutRabbitConfig {

    @Bean
    public Queue queueA() {
        return new Queue(FAOUT_A);
    }

    @Bean
    public Queue queueB() {
        return new Queue(FAOUT_B);
    }

    @Bean
    public Queue queueC() {
        return new Queue(FAOUT_C);
    }

    @Bean
    FanoutExchange fanoutExchange() {
        return new FanoutExchange(FAOUT_EXCHANGE);
    }

    @Bean
    Binding bindingExchangeA() {
        return BindingBuilder.bind(queueA()).to(fanoutExchange());
    }

    @Bean
    Binding bindingExchangeB() {
        return BindingBuilder.bind(queueB()).to(fanoutExchange());
    }

    @Bean
    Binding bindingExchangeC() {
        return BindingBuilder.bind(queueC()).to(fanoutExchange());
    }
}
